연산자 CLHSSingleCamera

Operator Library: Hardware Platform

이 연산자는 CLHS 의 싱글 링크 구성 카메라와 VisualApplets 간의 이미지 데이터 인터페이스를 나타냅니다. 이 연산자는 CLHS 카메라로부터 데이터를 수신하여 이미지 처리 애플리케이션으로 전달합니다.

하드웨어 플랫폼 지원 여부
marathon VF2

이 연산자는 ‘카메라’ 유형의 리소스 하나를 독점적으로 사용합니다. 이미지 소스로 프레임 그래버의 포트 0 또는 포트 1을 선택할 수 있습니다. 애플릿 내에서 동일한 리소스 ID를 두 번 이상 사용할 수 없습니다.

이 연산자는 항상 하나의 출력 포트 O를 가지며, 이것이 바로 이미지 출력입니다.

선택적 GPIO 포트 추가

이 표준 출력 포트 외에도, 설계상 필요한 경우 다양한 선택적 포트를 지정할 수 있습니다.

CLHS 프로토콜은 펄스와 GPIO 메시지를 지원합니다.

연산자를 인스턴스화할 때 팝업 대화 상자가 나타납니다:

여기에서는 최대 16개의 선택적 GPI(범용 입력)와 최대 16개의 선택적 GPO(범용 출력)의 사용 가능 여부를 설정할 수 있습니다.

포트 가용성을 "0"(기본값)으로 설정하면, 해당 포트는 오퍼레이터에 표시되지 않습니다. 포트 가용성을 1로 설정하면, 해당 포트가 오퍼레이터 인터페이스에서 사용할 수 있게 됩니다.

연결된 오퍼레이터에 의해 GPI의 상태가 변경되면 GPIO 상태가 전송됩니다. 오퍼레이터가 카메라로부터 GPIO 메시지를 수신하면 모든 GPO가 업데이트됩니다.

매개변수 Bit Width

Bit Width 링크 매개변수는 카메라가 실제로 전송하는 비트 폭보다 크거나 작은 값으로 설정할 수 있습니다:

  • 더 낮은 값을 선택하면 각 픽셀의 LSB 비트가 잘려 나가므로, MSB 비트만 애플리케이션으로 전송됩니다.
  • 더 큰 값을 선택하면, 원본 픽셀은 출력 픽셀의 MSB 위치에 설정됩니다. LSB 비트는 0으로 채워집니다.

두 경우 모두 상대적인 밝기는 동일하게 유지됩니다. 즉, 흰색 픽셀은 흰색으로, 어두운 픽셀은 어두운 상태로 유지됩니다.

선택적 출력 포트 추가

또한, (선택 사항으로) 두 개의 추가 출력 포트를 활성화할 수 있습니다:

  • 출력 포트 1개 출력 (SyncO) (비디오 메시지의 MultiFGSync 비트), 그리고
  • 출력 포트 1개 출력 (HeaderO). 출력 (HeaderO) 현재 처리 중인 비디오 패키지의 헤더 정보를 제공합니다. 이 포트는 64비트 너비의 픽셀 단위로 헤더 정보를 제공합니다.

출력 포트 헤더O의 구조

이미지 데이터가 출력 포트 O를 통해 출력되기 전에, 하나의 픽셀이 포트 HeaderO를 통해 출력됩니다. 이 픽셀에는 비디오 패키지의 헤더 데이터가 포함되어 있습니다. 출력 포트 HeaderO 는 입력 데이터의 보다 복잡한 종속성에 대한 정보를 전송하거나, 애플릿의 비디오 링크를 통해 이벤트에 반응하는 데 사용됩니다.

출력 포트의 구조 HeaderO 의 구조는 다음과 같습니다:

직책 CLHS 헤더 설명
[0,2] ColorID [0,2] 동영상 출처: 현재 이 부분은 항상 0입니다.
[3,4] ColorID [3,4] 패킷 유형 0 = 비디오 (그 외의 모든 조합은 예약되어 있음)
[5,7] ColorID [5,7] 색상 ID:
ColorID 설명
0 모노, 다성분, 바이엘, 원료
1 Blue
2 Green
3 Red
4 알파
(5..7) 예약됨
[8,9] VideoStatus [1,0] 행 구분자:
비트 설명
00 행의 이어짐
01 행 시작
10 행 끝
11 전체 행 (시작 및 끝)
[10,11] VideoStatus [3,2] 프레임 마커:
비트 설명
00 프레임의 연속
01 프레임 시작
10 프레임 끝
11 전체 프레임 (시작 및 끝)
12 VideoStatus [4] 트리거를 놓쳤습니다. 지난 패킷 이후로 카메라가 트리거 요청에 반응하지 못했습니다.
13 VideoStatus [5] 카메라의 버퍼 오버플로우
14 VideoStatus [6] MultiFGSync: 다중 FG 사용을 위한 동기화(SyncO 출력 참조)
15 VideoStatus [7] 재전송 표시기, 0으로 설정됨, 사용되지 않음
[16,31] RowID 현재 행 번호
[32,39] - 예약됨, 0으로 설정됨
[40,55] ColID 이 패키지에서 첫 번째 픽셀이 위치한 열 번호
[56,63] AcquisitionSet 이 바이트는 카메라에서 독점 정보를 설정하는 데 사용될 수 있습니다.

I/O Properties

Property Value
Operator Type M
Output Links O, VisualApplets 내에서 사용될 이미지 데이터 수집
GPO[0;15] (선택 사항), 카메라 GPO 상태 ( CLHS 를 통해 교환)
GPI[0;15] (선택 사항), 프레임그래버 GPO 상태 ( CLHS 를 통해 교환)
SyncO (선택 사항), 비디오 패키지 내 MultiFGSync 비트가 설정됨 (1 클럭 사이클 동안 유효)
HeaderO (선택 사항), 각 비디오 패키지 시작 부분에 비디오 패키지 헤더를 포함하는 64비트 폭의 픽셀 1개

지원되는 Link Format

Link Parameter Output Link O 출력 링크 GPO[0;15] (선택 사항) 출력 링크 GPI[0;15] (선택 사항) 출력 링크 SyncO (선택 사항) 출력 링크 헤더 O (선택 사항)
Bit Width any 1 1 1 64
Arithmetic unsigned unsigned unsigned unsigned unsigned
Parallelism 자세한 내용은 매개변수 설명을 참조하십시오. 1 1 1 1
Kernel Columns 1 1 1 1 1
Kernel Rows 1 1 1 1 1
Img Protocol {VALT_IMAGE2D, VALT_LINE1D} VALT_SIGNAL VALT_SIGNAL VALT_SIGNAL VALT_Pixel0D
Color Format VAF_GRAY VAF_GRAY VAF_GRAY VAF_GRAY VAF_GRAY
Color Flavor FL_NONE FL_NONE FL_NONE FL_NONE FL_NONE
Max. Img Width any 1 1 1 1
Max. Img Height any 1 1 1 1

Parameters

카메라 ID
Type 정적 쓰기 파라미터
Default 0
Range {0, 1}

이 매개변수는 어떤 카메라 리소스를 사용할지 지정합니다. 또한, 이 ID는 카메라 채널을 애플릿 포트에 매핑하는 데 사용됩니다.

픽셀 형식
Type 정적 쓰기 파라미터
Default Mono10p
Range {Mono8, Mono10p, Mono12p, Mono14p, Mono16, Raw8, Raw10p, Raw12p, Raw14p, Raw16, Raw64, B8, B10p, B12p, B14p, B16, G8, G10p, G12p, G14p, G16, R8, R10p, R12p, R14p, R16, BGR8, BGR10p, BGR12p, BGR14p, BGR16, BGRa8, BGRa10p, BGRa12p, BGRa14p, BGRa16, BayerGR8, BayerGR10p, BayerGR12p, BayerGR14p, BayerGR16, BayerRG8, BayerRG10p, BayerRG12p, BayerRG14p, BayerRG16, BayerGB8, BayerGB10p, BayerGB12p, BayerGB14p, BayerGB16, BayerBG8, BayerBG10p, BayerBG12p, BayerBG14p, BayerBG16}

이 매개변수는 출력 픽셀 형식을 지정합니다.

RAW 모드에서는 카메라에서 들어오는 모든 라인 및 프레임 마커가 무시됩니다. RAW 모드는 복잡한 링크 구조를 지원하기 위해 사용되며, 오퍼레이터 CLHSSingleCamera에서만 사용할 수 있습니다.

획득 형식
Type 정적 쓰기 파라미터
Default Area
Range {Area; Linescan; RAW}

이 매개변수가 “Area”로 설정되면, 가장 먼저 사용 가능한 데이터는 완전한 프레임입니다. 중간부터 시작된 프레임은 무시됩니다. 따라서 첫 번째 비디오 메시지에는 “Start Of Frame” 마커가 반드시 포함되어야 합니다.

이 매개변수가 “Line”으로 설정되면, 가장 먼저 제공되는 데이터는 완전한 한 줄입니다. 중간부터 시작되는 줄은 무시됩니다. 따라서 첫 번째 비디오 메시지에 “줄 시작(Start Of Line)” 마커가 포함되어야 합니다. “프레임 시작(Start of Frame)” 및 “프레임 끝(End of Frame)”은 라인 스캔 카메라의 경우 0으로 설정되므로 무시됩니다.

이 매개변수가 “RAW”로 설정되면, 모든 마커(“줄 시작/끝” 및 “프레임 시작/끝”)가 무시됩니다. “RAW” 모드는 복잡한 링크 구조를 지원하기 위해 사용됩니다. 이 모드는 CLHSSingleCamera 연산자에서만 사용할 수 있습니다.

라인 감독
Type dynamic/static 읽기/쓰기 파라미터
Default 꺼짐
Range {켜기, 끄기}

이 매개변수가 “on”으로 설정된 경우, 운영자는 카메라에서 들어오는 모든 라인이 애플릿으로 전송되는지 여부를 모니터링합니다.

카메라에서 들어오는 라인은 오름차순으로 번호가 매겨집니다(라인 0, 라인 1, 라인 2 … 라인 N). 이 매개변수는 어떤 라인도 누락되지 않도록 보장합니다. 예를 들어, 링크가 하나인 카메라가 연결되어 있고 이 매개변수가 332, 333, 335, 336 …와 같은 시퀀스를 감지하면 오류가 발생합니다.

카메라에 1개 이상의 링크가 있는 경우, ‘RowStep’ 매개변수를 사용하여 링크당 입력 라인의 단계 크기를 적절히 늘릴 수 있습니다. 예를 들어, 카메라에 2개의 링크가 있는 경우, 링크 0은 라인 0, 2, 4, 6, …을 수신하고, 링크 1은 라인 1, 3, 5, 7 … 등을 수신합니다. 따라서, 카메라에 4개의 링크가 있는 경우, 링크 0은 라인 0, 4, 8, 12, …를 수신하고, 링크 1은 라인 1, 5, 9, 13을, 링크 2는 라인 2, 6, 10, 14, … 등을 수신합니다.

또한, LineSupervision 매개변수는 무결성을 확인합니다: 줄 시작(SoL)과 줄 끝(EoL)이 올바른 순서로 배치되어야 합니다. EoL 또는 SoL이 누락된 경우 이를 감지하여 오류 플래그를 생성하고 줄 끝을 삽입합니다. 누락된 행은 더 짧은 행으로 삽입되며 (길이는 병렬 처리 정도와 비트 폭에 따라 다름) 이후 2개의 RowID가 감지되고 행의 일관성이 다시 보장될 때까지 이 과정이 반복됩니다.

RowStep
Type dynamic/static 읽기/쓰기 파라미터
Default 1
Range {1, 65535}

2개의 RowID 사이의 간격입니다. 멀티채널 카메라를 사용하여 라인이 여러 링크로 분할된 경우가 아니라면 1이어야 합니다.

SyncFirstLineToFGSyncRequest
Type dynamic/static 읽기/쓰기 파라미터
Default no
Range {아니요, 예}

이 매개변수가 ‘yes’로 설정되면, 첫 번째 FGSyncRequest 이전의 모든 라인이 무시됩니다. LINE_1D 모드에서만 작동합니다. 이렇게 하면 첫 번째 라인이 첫 번째 외부 FGSyncRequest 펄스와 동기화됩니다.

MinimalParallelism
Type 정적 읽기 파라미터
Default 2
Range [1; 1024]

데이터 손실 없이 카메라의 최대 대역폭을 전송하기 위해 출력 링크 O에 필요한 최소 병렬 처리 수준. 이 값은 현재 선택된 설계 클럭 주파수에 따라 달라집니다. 주파수가 높을수록 병렬 처리 수준은 더 낮아질 수 있습니다.